package org.eiahe.hr.interview.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;
import org.eiahe.hr.interview.domain.InterviewPositionCategory;
import org.eiahe.hr.interview.domain.dto.InterviewPositionCategoryQueryDTO;
import org.eiahe.hr.interview.domain.vo.InterviewPositionCategoryVO;
import org.eiahe.hr.interview.domain.dto.InterviewPositionCategoryDTO;

import java.util.List;

/**
 * 职位分类表
 * @author :zhangnn
 * @className :InterviewPositionCategoryService
 * @description: TODO
 * @date 2025-08-13 16:02:10
 */
public interface InterviewPositionCategoryService extends IService<InterviewPositionCategory> {

    /**
     * 查询所有启用的职位分类
     */
    List<InterviewPositionCategoryDTO> selectAllEnabled();

    /**
     * 根据ID查询职位分类
     */
    InterviewPositionCategoryDTO selectById(Long id);

    /**
     * 新增职位分类
     */
    boolean insertCategory(InterviewPositionCategoryDTO categoryDTO);

    /**
     * 更新职位分类
     */
    boolean updateCategory(InterviewPositionCategoryDTO categoryDTO);

    /**
     * 删除职位分类
     */
    boolean deleteCategory(Long id);

    /**
     * 批量删除职位分类
     */
    boolean deleteCategoryByIds(List<Long> ids);

    /**
     * 检查分类代码是否存在
     */
    boolean checkCategoryCodeExists(String categoryCode, Long excludeId);

    /**
     * 分页
     * @param queryDTO
     * @return
     */
    TableDataInfo<InterviewPositionCategoryVO> selectCategoryPage(InterviewPositionCategoryQueryDTO queryDTO, PageQuery pageQuery);
}
